// https://nuxt.com/docs/api/configuration/nuxt-config
// import process from 'node:process'

export default defineNuxtConfig({
  compatibilityDate: '2024-04-03',
  devtools: { enabled: true },
  devServer: {
    port: 3000,
    host: '0.0.0.0',
  },
  ssr: false,
  app: {
    baseURL: '/',
    head: {
      titleTemplate: '%s',
      htmlAttrs: {
        lang: 'zh-CN',
        // unocss: '',
      },
      bodyAttrs: {},
      title: '',
      meta: [
        {
          name: 'viewport',
          content:
            'width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,shrink-to-fit=no,viewport-fit=cover',
        },
        { name: 'author', content: '' },
        { 'http-equiv': 'cache-control', 'content': 'no-cache' },
        {
          name: 'format-detection',
          content: 'telephone=no,email=no,adress=no',
        },
      ],
    },
    pageTransition: false,
    layoutTransition: false,
    // viewTransition: false,
  },
  runtimeConfig: {
    public: {
      apiBase: '',
    },
  },
  modules: [
    // '@nuxtjs/eslint-module',
    '@pinia/nuxt',
    '@vueuse/nuxt',
    // '@nuxt/image',
    // '@nuxtjs/seo',
    // '~/modules/vuetify',
    // '~/modules/naive-ui',
    // 'nuxt-quasar-ui',
    // '@vant/nuxt',
    // 'nuxt-swiper',
    '@unocss/nuxt',
  ],
  vueuse: {
    autoImports: true,
  },
  plugins: [],
  css: ['~/assets/styles/index.scss'],
  routeRules: {
    // '/proxy/**': {
    //   proxy: {
    //     to: `${process.env.NUXT_PUBLIC_API_BASE}/**`,
    //     headers: {
    //       'X-Forwarded-For': '127.0.0.1',
    //     },
    //   },
    // },
  },
  typescript: {
    tsConfig: {
      compilerOptions: {
        // target: 'ES2022',
        exactOptionalPropertyTypes: true,
        experimentalDecorators: true,
        emitDecoratorMetadata: true,
      },
    },
  },
  vue: {
    compilerOptions: {
      // isCustomElement: (tag) => {
      //   return ['swiper-container', 'swiper-slide'].includes(tag)
      // },
    },
    transformAssetUrls: {
      // audio: ['src'],
      // img: ['src'],
      // video: ['src'],
      // 'q-img': ['src'],
    },
  },
  vite: {
    mode: process.env?.MODE ?? 'production',

    esbuild: {
      tsconfigRaw: {},
    },
    // mode:'testing',
    optimizeDeps: {
      // include:
      //   process.env.NODE_ENV === 'development'
      //     ? ['naive-ui', 'vueuc', 'date-fns-tz/formatInTimeZone']
      //     : [],
    },
    // vue: {
    //   template: {
    //     transformAssetUrls: {
    //       // 'n-image': ['src'],
    //       // NImage: ['src'],
    //       // 'nuxt-img': ['src'],
    //       // NuxtImg: ['src'],
    //       'audio': ['src'],
    //       'img': ['src'],
    //       'video': ['src'],
    //       'q-img': ['src'],
    //     },
    //     compilerOptions: {
    //       isCustomElement: (tag) => {
    //         return ['swiper-container', 'swiper-slide'].includes(tag)
    //       },
    //     },
    //   },
    //   // css: {},
    //   // customElement: true,
    // },
    // css: {
    //   preprocessorOptions: {
    //     sass: {
    //       outputStyle: 'expanded',
    //     },
    //   },
    // },
  },
  // quasar: {
  //   plugins: ['Notify', 'Dialog'],
  //   lang: 'zh-CN',
  //   config: {
  //     // brand: {
  //     //   // primary: '#c9f300',
  //     // },
  //   },
  //   // extras: [
  //   //   'material-icons',
  //   // ],
  //   components: {
  //     defaults: {},
  //   },
  //   // cssAddon: true,
  // },

  nitro: {
    prerender: {
      routes: [
        // '/app/story/0',
        // '/help-list/1',
        // '/app/invitation-audit',
        // '/app/exclusive-member/0',
        // '/app/invitation?auditMode=1',
        // '/_ipx/w_375/bg.png',
        // '/_ipx/w_750/bg.png',
      ],
      ignore: [
        // '/',
        // '/activities/invite2024',
        // '/activities/invite2024/more-info',
      ],
    },
  },
  unocss: { nuxtLayers: true },
  // pageTransition: false,
})
